package com.hhck.mapper;

import com.hhck.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ProductMapper {

    // 分页查询商品信息（条件查询）
    public List<Product> selectProductByPage(@Param("page") Page page, @Param("product") Product product);

    // 查询商品信息总行数
    public int selectProductCount(@Param("product") Product product);

    // 添加商品
    public int insertProduct(Product product);

    // 通过商品编号查询商品
    Product selectProductByProductNum(String productNum);

    // 修改商品上下架状态
    int updateProductUpDownStateByProductId(Product product);

    // 删除单个商品
    int deleteProductByProductId(Integer productId);

    // 批量删除商品
    int batchDeleteProductByProductIdList(@Param("productIdList") List<Integer> productIdList);

    // 修改商品
    int updateProductByProductId(Product product);

    // 根据分类id查询商品数量
    int selectProductCountByTypeId(Integer typeId);

    // 更改库存量（入库）
    int updateProductInInventByProductId(InStore inStore);

    // 更改库存量（出库）
    int updateProductOutInventByProductId(OutStore outStore);

    // 根据商品id查询库存量
    int selectProductInventByProductId(Integer productId);

    // 统计数据（查询每个仓库的商品数量）
    List<Statistics> selectEveryStoreProductCount();

}

